package lesson03;
//复制文件到另一个地方
//1.输入要复制文件的路径
//2.输入要复制到的地址
//3.使用二进制流操作写到指定地方

import java.io.*;
import java.util.Scanner;

public class Demo_303 {

    public static void main(String[] args) {
        System.out.println("请输入原文件路径：");
        Scanner scanner = new Scanner(System.in);
        String sourcePath = scanner.next();
        File sourceFile = new File(sourcePath);
        if (!sourceFile.exists()) {
            System.out.println("输入的源文件地址不存在");
            return;
        }
        if (!sourceFile.isFile()) {
            System.out.println("输入的源文件不是一个普通文件");
            return;
        }
        System.out.println("请输入要复制到的目的地路径：");
        String destPath = scanner.next();
        File destFile = new File(destPath);
        if (destFile.exists()) {
            System.out.println("目标文件已存在，请重新输入.");
            return;
        }
        if (!destFile.getParentFile().exists()) {
            System.out.println("目的地地址父目录不存在");
            return;
        }

        scanner.close();


        try (InputStream fileInputStream = new FileInputStream(sourceFile);
             OutputStream fileOutputStream = new FileOutputStream(destFile)) {
            byte[] bytes = new byte[1024];
            while (true) {
                int len = fileInputStream.read(bytes);
                if (len == -1) {
                    break;
                }
                fileOutputStream.write(bytes, 0, len);
            }
            fileOutputStream.flush();
            System.out.println("复制成功 "+sourceFile.getCanonicalPath()+"-->"+destFile.getCanonicalPath());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

}
